package com.coin900.coin.service.fu;

import com.coin900.coin.persist.fu.FuUserVO;
import com.value.mybatis.Pagination;

import java.util.List;
import java.util.Map;

/**
 * @author shui
 * @create 2017-11-21
 **/
public interface IFuUserService {

    List<FuUserVO> loadFuUserForPage(Pagination page);

    List<FuUserVO> loadFuUser(Map<String, Object> params);

    List<FuUserVO> loadProjectUsers(Map<String, Object> params);

    /**
     * 获取某个用户
     *
     * @param id
     * @return
     */
    FuUserVO getUser(Long id);

    /**
     * 插入一个用户
     *
     * @param fuUserVO
     */
    void insertFuUser(FuUserVO fuUserVO);

    /**
     * 用户通过分享注册，同时插入分享记录
     *
     * @param fuUserVO
     * @param shareUserId 分享用户的 id
     */
    void insertFuUser(FuUserVO fuUserVO, Long shareUserId);

    /**
     * 币新第三方登录时注册用户
     *
     * @param fuUserVO
     */
    void insertFuUserByBxLogin(FuUserVO fuUserVO);

    void updateFuUser(FuUserVO fuUserVO);

    void deleteFuUser(FuUserVO fuUserVO);

    void doBindGoogleSecret(FuUserVO fuUserVO,Long code,String googleSecret);

    public void doCancelGoogleSecret(FuUserVO user, Long code);

}